Packet-based communication networks rely on numerous routers and switches to effectively forward packets from point to point throughout the network based on routing decisions made. In certain instances, packets associated with a given communication session are forwarded by routing decisions made at each point (connectionless forwarding). In other instances, service providers want to establish virtual circuits or tunnels, which define a particular path through which packets should be forwarded over the network (connection-oriented forwarding). By forcing packets to take a defined path, service providers are better able to control the quality of service provided in association with forwarding packets over the network.
Unfortunately, configuring each of the routing and switching elements within the network to establish the virtual circuit is often manually intensive and cumbersome. Accordingly, there is a need for a dynamic and effective technique for automatically establishing virtual circuits through a network.